home *** CD-ROM | disk | FTP | other *** search
Wrap
10 'DUNQUEST THE QUEST 20 DEFINT A-Z 30 SCREEN 3:KEY OFF:WIDTH 20:COLOR 1,4:CLS 40 LOCATE 1,1,0 50 LOCATE 4,1:PRINT " THE" 60 LOCATE 7,1:PRINT " QUEST" 70 'KILL TIME 80 SV.TIMER! = TIMER +2 90 IF TIMER < SV.TIMER! THEN GOTO 90 100 'PRINT MENU 110 SCREEN 0:WIDTH 40:COLOR 0,4,4:CLS 120 LOCATE 3,1:PRINT " THE QUEST" 130 RANDOMIZE TIMER 140 MX=INT(RND*9)+1: MNO$=STR$(MX) 150 MX=LEN(MNO$): MNO$=RIGHT$(MNO$,MX-1) 160 GOSUB 2830 'GET PLAYERS & LOAD PLAYER DATA 170 GOSUB 250 'LOAD MAP 180 GOSUB 630 "LOAD TABLES 190 GOSUB 3600 'PLACE MONSTERS & TREASURE 200 GOSUB 4360 'SETUP INITIAL LOCATION OF PLAYERS 210 FOR MX=1 TO 40 220 M.NBR(MX,1)=1: M.NBR(MX,2)=1 230 NEXT 240 CHAIN "DUNPLAY",10,ALL 250 'LOAD THE MAP 260 FID$ = "DUNMAP" + MNO$ 270 OPEN FID$ FOR INPUT AS #3 280 DIM M(24,40) 'DUNGEON ARRAY 290 DIM R(10,6) 'ROOMS 1=TOP LEFT HOR,2=TOP LEFT VER,3=BOT RIGHT HOR,4=BOT RIGHT VERT,5=MONSTER,6=NBR OF MONSTERS 300 RX=0 310 GOSUB 340 320 CLOSE #3 330 RETURN 340 'FLAG THE ROOMS 350 INPUT #3,MX 360 IF MX=9999 THEN GOTO 410 370 RX=RX+1 380 R(RX,1)=MX 390 INPUT #3,R(RX,2),R(RX,3),R(RX,4) 400 GOTO 340 410 'LOAD THE MAP TO ARRAYS 420 INPUT #3,CT,ZZ 430 SCREEN 1:COLOR 2,0:CLS:PALETTE 1,2: PALETTE 2,0: PALETTE 3,0 440 PAINT (0,0),2,3 450 LOCATE 25,10: PRINT "PLEASE STAND BY"; 460 FOR MV = 1 TO 24 470 FOR MH = 1 TO 40 480 IF CT=0 THEN INPUT #3,CT,ZZ 490 IF CT=9999 THEN GOTO 600 500 IF ZZ > 47 AND ZZ < 58 THEN ZZ = 32 510 IF MH> 40 THEN MV=MV+1: MH=1 520 M(MV,MH) = ZZ 530 IF ZZ=32 THEN GOTO 590 540 IF MV=24 THEN GOTO 590 550 H=(MH*8)-8: V=(MV*8)-8 560 IF ZZ=219 THEN LINE(H,V)-(H+7,V+7),3,BF 570 IF ZZ=179 THEN LINE(H+3,V)-(H+4,V+7),3,BF 580 IF ZZ=196 THEN LINE(H,V+4)-(H+7,V+4),3 590 CT=CT-1 600 NEXT MH 610 NEXT MV 620 RETURN 630 'LOAD TABLES 640 DIM SV(8002) 'SAVE THE CURRENT SCREEN 650 DIM TRAP$(6) 'TRAPS 660 DIM ML(100,4) ' MONSTER LOCATIONS V,H,ROOM,HIT POINTS 670 DIM D(3,3) 'OPEN DOORS 680 TRAP$(1)="POISON GAS" 690 TRAP$(2)="FOG " 700 TRAP$(3)="HIDDEN PIT" 710 TRAP$(4)="FALLING BLOCK TRAP" 720 TRAP$(5)="POISON NEEDLE TRAP" 730 TRAP$(6)="DART TRAP" 740 DIM M.NAME$(40) 750 M.NAME$(1)="BAT" 760 M.NAME$(2)="RAT" 770 M.NAME$(3)="WOLF" 780 M.NAME$(4)="CENTIPEDE" 790 M.NAME$(5)="BANDIT" 800 M.NAME$(6)="KOBOLD" 810 M.NAME$(7)="SKELETON" 820 M.NAME$(8)="GHOUL" 830 M.NAME$(9)="ZOMBIE" 840 M.NAME$(10)="GOBLIN" 850 M.NAME$(11)="MAN-LIZARD" 860 M.NAME$(12)="ORC" 870 M.NAME$(13)="WERERAT" 880 M.NAME$(14)="SNAKE" 890 M.NAME$(15)="BEAR" 900 M.NAME$(16)="WIGHT" 910 M.NAME$(17)="CARRION CRAWLER" 920 M.NAME$(18)="WEREWOLF" 930 M.NAME$(19)="ORGE" 940 M.NAME$(20)="HELLHOUND" 950 M.NAME$(21)="CAECILIA" 960 M.NAME$(22)="CROCODILE" 970 M.NAME$(23)="MUMMY" 980 M.NAME$(24)="WEREBEAR" 990 M.NAME$(25)="WYVERN" 1000 M.NAME$(26)="CAVE BEAR" 1010 M.NAME$(27)="SALAMANDER" 1020 M.NAME$(28)="GIANT SCORPION" 1030 M.NAME$(29)="SABRE-TOOTH TIGER" 1040 M.NAME$(30)="GORGON" 1050 M.NAME$(31)="VAMPIRE" 1060 M.NAME$(32)="TROLL" 1070 M.NAME$(33)="DEVIL SWINE" 1080 M.NAME$(34)="STONE GIANT" 1090 M.NAME$(35)="SPECTRE" 1100 M.NAME$(36)="RED DRAGON" 1110 M.NAME$(37)="CYCLOPS" 1120 M.NAME$(38)="PURPLE WORM" 1130 M.NAME$(39)="GOLEM" 1140 M.NAME$(40)="GOLD DRAGON" 1150 DIM M.AC(40) 1160 ' 10=SILVER 20=MAGIC 30=MAGIC/FIRE 40=STAKE 1170 M.AC(1)=4 1180 M.AC(2)=2 1190 M.AC(3)=3 1200 M.AC(4)=1 1210 M.AC(5)=4 1220 M.AC(6)=3 1230 M.AC(7)=3 1240 M.AC(8)=4 1250 M.AC(9)=2 1260 M.AC(10)=4 1270 M.AC(11)=4 1280 M.AC(12)=5 1290 M.AC(13)=14 1300 M.AC(14)=4 1310 M.AC(15)=4 1320 M.AC(16)=13 1330 M.AC(17)=3 1340 M.AC(18)=16 1350 M.AC(19)=5 1360 M.AC(20)=6 1370 M.AC(21)=4 1380 M.AC(22)=7 1390 M.AC(23)=37 1400 M.AC(24)=18 1410 M.AC(25)=7 1420 M.AC(26)=7 1430 M.AC(27)=8 1440 M.AC(28)=8 1450 M.AC(29)=4 1460 M.AC(30)=8 1470 M.AC(31)=48 1480 M.AC(32)=6 1490 M.AC(33)=17 1500 M.AC(34)=6 1510 M.AC(35)=22 1520 M.AC(36)=10 1530 M.AC(37)=5 1540 M.AC(38)=4 1550 M.AC(39)=24 1560 M.AC(40)=10 1570 DIM M.MV(40) 1580 M.MV(1)=12 1590 M.MV(2)=4 1600 M.MV(3)=12 1610 M.MV(4)=4 1620 M.MV(5)=8 1630 M.MV(6)=4 1640 M.MV(7)=4 1650 M.MV(8)=6 1660 M.MV(9)=8 1670 M.MV(10)=8 1680 M.MV(11)=8 1690 M.MV(12)=4 1700 M.MV(13)=8 1710 M.MV(14)=6 1720 M.MV(15)=8 1730 M.MV(16)=6 1740 M.MV(17)=8 1750 M.MV(18)=12 1760 M.MV(19)=6 1770 M.MV(20)=8 1780 M.MV(21)=8 1790 M.MV(22)=6 1800 M.MV(23)=4 1810 M.MV(24)=8 1820 M.MV(25)=6 1830 M.MV(26)=8 1840 M.MV(27)=16 1850 M.MV(28)=10 1860 M.MV(29)=10 1870 M.MV(30)=8 1880 M.MV(31)=8 1890 M.MV(32)=8 1900 M.MV(33)=12 1910 M.MV(34)=8 1920 M.MV(35)=10 1930 M.MV(36)=6 1940 M.MV(37)=6 1950 M.MV(38)=4 1960 M.MV(39)=12 1970 M.MV(40)=6 1980 DIM M.NBR(40,2) 1990 M.NBR(1,1)=1:M.NBR(1,2)=20 2000 M.NBR(2,1)=5:M.NBR(2,2)=20 2010 M.NBR(3,1)=2:M.NBR(3,2)=20 2020 M.NBR(4,1)=2:M.NBR(4,2)=8 2030 M.NBR(5,1)=1:M.NBR(5,2)=8 2040 M.NBR(6,1)=4:M.NBR(6,2)=8 2050 M.NBR(7,1)=3:M.NBR(7,2)=12 2060 M.NBR(8,1)=1:M.NBR(8,2)=6 2070 M.NBR(9,1)=2:M.NBR(9,2)=8 2080 M.NBR(10,1)=2:M.NBR(10,2)=8 2090 M.NBR(11,1)=2:M.NBR(11,2)=8 2100 M.NBR(12,1)=2:M.NBR(12,2)=8 2110 M.NBR(13,1)=1:M.NBR(13,2)=8 2120 M.NBR(14,1)=1:M.NBR(14,2)=8 2130 M.NBR(15,1)=1:M.NBR(15,2)=4 2140 M.NBR(16,1)=1:M.NBR(16,2)=6 2150 M.NBR(17,1)=1:M.NBR(17,2)=3 2160 M.NBR(18,1)=1:M.NBR(18,2)=6 2170 M.NBR(19,1)=1:M.NBR(19,2)=6 2180 M.NBR(20,1)=2:M.NBR(20,2)=8 2190 M.NBR(21,1)=1:M.NBR(21,2)=3 2200 M.NBR(22,1)=1:M.NBR(22,2)=4 2210 M.NBR(23,1)=1:M.NBR(23,2)=4 2220 M.NBR(24,1)=1:M.NBR(24,2)=4 2230 M.NBR(25,1)=1:M.NBR(25,2)=2 2240 M.NBR(26,1)=1:M.NBR(26,2)=2 2250 M.NBR(27,1)=2:M.NBR(27,2)=5 2260 M.NBR(28,1)=1:M.NBR(28,2)=6 2270 M.NBR(29,1)=1:M.NBR(29,2)=4 2280 M.NBR(30,1)=1:M.NBR(30,2)=2 2290 M.NBR(31,1)=1:M.NBR(31,2)=4 2300 M.NBR(32,1)=1:M.NBR(32,2)=8 2310 M.NBR(33,1)=1:M.NBR(33,2)=3 2320 M.NBR(34,1)=1:M.NBR(34,2)=2 2330 M.NBR(35,1)=1:M.NBR(35,2)=4 2340 M.NBR(36,1)=1:M.NBR(36,2)=1 2350 M.NBR(37,1)=1:M.NBR(37,2)=1 2360 M.NBR(38,1)=1:M.NBR(38,2)=2 2370 M.NBR(39,1)=1:M.NBR(39,2)=1 2380 M.NBR(40,1)=1:M.NBR(40,2)=1 2390 DIM M.DAM(40,2): MX=0 2400 ' 10=POISON 20=PARALSYS 30=ENERGY DRAIN 1 LVL 40=ENERGY DRAIN 2 LEVELS 2410 ' 50=FIRE 60=TURN TO STONE 70=??? 80=DRAGON FIRE 2420 M.DAM(1,1)=0:M.DAM(1,2)=0 2430 M.DAM(2,1)=1:M.DAM(2,2)=2 2440 M.DAM(3,1)=1:M.DAM(3,2)=3 2450 M.DAM(4,1)=10:M.DAM(4,2)=0 2460 M.DAM(5,1)=1:M.DAM(5,2)=6 2470 M.DAM(6,1)=1:M.DAM(6,2)=4 2480 M.DAM(7,1)=1:M.DAM(7,2)=6 2490 M.DAM(8,1)=21:M.DAM(8,2)=3 2500 M.DAM(9,1)=1:M.DAM(9,2)=8 2510 M.DAM(10,1)=1:M.DAM(10,2)=6 2520 M.DAM(11,1)=1:M.DAM(11,2)=6 2530 M.DAM(12,1)=2:M.DAM(12,2)=7 2540 M.DAM(13,1)=1:M.DAM(13,2)=4 2550 M.DAM(14,1)=11:M.DAM(14,2)=4 2560 M.DAM(15,1)=3:M.DAM(15,2)=12 2570 M.DAM(16,1)=30:M.DAM(16,2)=0 2580 M.DAM(17,1)=20:M.DAM(17,2)=0 2590 M.DAM(18,1)=2:M.DAM(18,2)=8 2600 M.DAM(19,1)=2:M.DAM(19,2)=20 2610 M.DAM(20,1)=55:M.DAM(20,2)=10 2620 M.DAM(21,1)=2:M.DAM(21,2)=16 2630 M.DAM(22,1)=4:M.DAM(22,2)=32 2640 M.DAM(23,1)=22:M.DAM(23,2)=22 2650 M.DAM(24,1)=9:M.DAM(24,2)=64 2660 M.DAM(25,1)=16:M.DAM(25,2)=44 2670 M.DAM(26,1)=8:M.DAM(26,2)=56 2680 M.DAM(27,1)=6:M.DAM(27,2)=32 2690 M.DAM(28,1)=16:M.DAM(28,2)=48 2700 M.DAM(29,1)=9:M.DAM(29,2)=80 2710 M.DAM(30,1)=64:M.DAM(30,2)=24 2720 M.DAM(31,1)=42:M.DAM(31,2)=20 2730 M.DAM(32,1)=6:M.DAM(32,2)=44 2740 M.DAM(33,1)=4:M.DAM(33,2)=24 2750 M.DAM(34,1)=6:M.DAM(34,2)=36 2760 M.DAM(35,1)=42:M.DAM(35,2)=16 2770 M.DAM(36,1)=82:M.DAM(36,2)=92 2780 M.DAM(37,1)=2:M.DAM(37,2)=60 2790 M.DAM(38,1)=12:M.DAM(38,2)=48 2800 M.DAM(39,1)=9:M.DAM(39,2)=74 2810 M.DAM(40,1)=89:M.DAM(40,2)=92 2820 RETURN 2830 'GET PLAYERS & LOAD PLAYER DATA 2840 OPEN "DUNCHAR" AS #1 LEN=122 2850 FIELD #1,2 AS STRN$,2 AS INTL$,2 AS WIS$,2 AS DEX$,2 AS CON$,2 AS CHA$, 10 AS CLAS$,2 AS HIT$,4 AS MONEY$,2 AS LVL$,2 AS ARM$,2 AS SV.POISON$,2 AS SV.MAGIC$,2 AS SV.STONE$,2 AS SV.DRAG$,2 AS SV.SPELL$,4 AS EXPR$,24 AS NM$,7 AS ALIGN$,45 AS D$ 2860 OPEN "DUNSHOP" AS #2 LEN=44 2870 FIELD #2,2 AS SID$,1 AS SCLASS$,15 AS SNAME$,2 AS SCOST$,2 AS SDAM$,2 AS SWT$,2 AS P1$,2 AS P2$,2 AS P3$,2 AS P4$,2 AS P5$,2 AS P6$,2 AS P7$,2 AS P8$,2 AS P9$,2 AS P10$ 2880 DIM P.NAME$(9): DIM P.CLASS$: DIM P(9,13): DIM GP!(9) 2890 ' P(1)=WEIGHT, P(2)=STRENGTH P(3)=HIT POINTS P(4)=LEVEL P(5)=ARMOR CLASS P(6)=VERTICAL POSITION P(7)=HORIZONAL POSITION P(8)=RIGHT HAND P(9)=LEFT P(10)=LIGHT P(11)=ROOM P(12)=ROOM P(13) RESTING 2900 DIM S.NAME$(40): DIM S(40,12): DIM S.CLASS$(40) 2910 ' S(1)=DAMAGE S(2)=WEIGHT S(3)-S(11) = PLAYERS S(12)=COST 2920 S=0 'LOAD SUPPLIES 2930 S=S+1 2940 GET #2,S 2950 IF SID$ <> "DS" THEN SMAX=S-1: GOTO 3010 2960 S.NAME$(S)=SNAME$: S.CLASS$(S) = SCLASS$: S(S,1)=CVI(SDAM$): S(S,2)=CVI(SWT$) 2970 S(S,3)=CVI(P1$): S(S,4)=CVI(P2$): S(S,5)=CVI(P3$): S(S,6)=CVI(P4$) 2980 S(S,7)=CVI(P5$): S(S,8)=CVI(P6$): S(S,9)=CVI(P7$): S(S,10)=CVI(P8$) 2990 S(S,11)=CVI(P9$): S(S,12)=CVI(SCOST$) 3000 GOTO 2930 3010 COLOR 0,4,4: CLS: BEEP 3020 INPUT "ENTER NUMBER OF PLAYERS ",PLAYERS 3030 FOR PX = 1 TO PLAYERS 3040 GOSUB 3080 'GET PLAYER 3050 NEXT 3060 LV.ADJ = INT(T.LVL/PLAYERS) 3070 RETURN 3080 'GET PLAYER 3090 PRINT "ENTER PLAYER NUMBER ";PX; 3100 INPUT P 3110 IF P <1 OR P >9 THEN GOTO 3090 3120 GET #1,P 3130 IF NM$ = SPACE$(24) THEN PRINT P;"NOT VALID": GOTO 3080 3140 PRINT "YOU ARE ";NM$ 3150 PRINT "(Yes/No)" 3160 GOSUB 4510 'GET REPLY 3170 IF REPLY$ <> "Y" THEN GOTO 3080 3180 FOR S = 1 TO SMAX 'GET WEIGHT OF SUPPLIES 3190 P(P,1)=P(P,1)+(S(S,P+2) * S(S,2)) 3200 NEXT 3210 P.NAME$(P) = NM$: P.CLASS$(P)=CLAS$ 3220 P(P,4) = CVI(LVL$): P(P,2)=CVI(STRN$) 3230 P(P,3)=CVI(HIT$): 3240 T.LVL = T.LVL+P(P,4) 3250 PRINT "WHAT ARMOR ARE YOU WEARING ";NM$ 3260 INPUT A$ 3270 IF A$="" THEN P(P,5) = CVI(ARM$): GOTO 3350 3280 ' 3290 SK$=A$ 3300 GOSUB 4290 'MATCH TO SUPPLY FILE 3310 IF FOUND = 0 THEN GOTO 3250 3320 IF S.CLASS$(S) <> "A" THEN GOTO 3250 3330 P(P,5)=S(S,1)+CVI(ARM$) 'GET ARMOR CLASS 3340 IF P(P,5)>10 THEN P(P,5)=10 3350 'GET WEAPONS 3360 PRINT "WHAT DO YOU HAVE IN YOUR RIGHT HAND?" 3370 INPUT A$ 3380 IF A$="" THEN P(P,8) = 0: GOTO 3470 3390 ' 3400 SK$=A$ 3410 GOSUB 4290 'MATCH TO SUPPLY FILE 3420 IF FOUND = 0 THEN MSG$="": GOSUB 4600: GOTO 3350 3430 P(P,8) = S: S(S,P+2)=S(S,P+2)-1 3440 IF S=13 THEN P(P,10)=40 'LANTERN 3450 IF S=14 THEN P(P,10)=10 'TORCH 3460 IF S=4 THEN P(P,5)=P(P,5)+1 'SHIELD 3470 PRINT "WHAT DO YOU HAVE IN YOUR LEFT HAND?" 3480 INPUT A$ 3490 IF A$="" THEN P(P,9) = 0: GOTO 3580 3500 ' 3510 SK$=A$ 3520 GOSUB 4290 'MATCH TO SUPPLY FILE 3530 IF FOUND = 0 THEN MSG$="": GOSUB 4600: GOTO 3470 3540 P(P,9) = S: S(S,P+2)=S(S,P+2)-1 3550 IF S=4 THEN P(P,5)=P(P,5)+1 'SHIELD 3560 IF S=13 THEN P(P,10)=40 'LANTERN 3570 IF S=14 THEN P(P,10)=10 'TORCH 3580 IF S(33,P+2) <> 0 THEN P(P,5)=P(P,5)-4 'CARTER'S CURSE 3590 RETURN 3600 'PLACE MONSTERS & TREASURE 3610 RX = 0 3620 'CHECK EACH ROOM 3630 RX = RX+1 3640 IF R(RX,1) = 0 THEN GOTO 3700 3650 DEP = R(RX,3)-R(RX,1) 3660 WID = R(RX,4)-R(RX,2) 3670 SIZ=(DEP-1)*(WID-1) 3680 GOSUB 3710 'STOCK A ROOM 3690 GOTO 3620 3700 RETURN 3710 'STOCK A ROOM 3720 RANDOMIZE TIMER 3730 TX=0 3740 ROLL = INT(RND*6)+1 3750 IF ROLL < 4 THEN GOSUB 3800: GOTO 3790 'GET A MONSTER 3760 IF ROLL = 4 THEN GOSUB 4060: GOTO 3790 'GET A TRAP 3770 IF ROLL = 5 THEN GOSUB 4160: GOTO 3790 'GET A TREASURE 3780 ROLL = INT(RND*6)+1: IF ROLL =1 THEN GOSUB 4060 3790 RETURN 3800 'GET A MONSTER 3810 DEP = R(RX,3)-R(RX,1) 3820 WID = R(RX,4)-R(RX,2) 3830 SIZ=(DEP-1)*(WID-1) 3840 WK.LV =((INT(RX/4)+LV.ADJ)-1) 3850 MX = (INT(RND*4)+1)+(4*(WK.LV)): IF MX>40 THEN MX=40 3860 WK = MX+60 3870 NBR = INT(RND*M.NBR(MX,2))+M.NBR(MX,1) 3880 IF NBR > M.NBR(MX,2) THEN NBR=M.NBR(MX,2) 3890 IF NBR > SIZ THEN NBR = SIZ-4 3900 FOR ZZ = 1 TO NBR 3910 V = (INT(RND*DEP)+1)+R(RX,1) 3920 H = (INT(RND*WID)+1)+R(RX,2) 3930 IF M(V,H) <> 32 GOTO 3910 3940 ML.MAX=ML.MAX+1: ML(ML.MAX,1)=V: ML(ML.MAX,2)=H 3950 ML(ML.MAX,3)=RX: ML(ML.MAX,4)=INT((MX/4)+1) 3960 M(V,H) = WK 3970 MH=(H*8)-8: MV=(V*8)-8 3980 DRAW "BM=MH;,=MV;": DRAW "BR3;D4;F2;H2;G2" 3990 DRAW "BM=MH;,=MV;": DRAW "BR3;D2;L2;R4" 4000 R(RX,5)=MX: R(RX,6)=R(RX,6)+1 'SAVE MONSTER & NUMBER 4010 NEXT 4020 ROLL = INT(RND*6)+1 4030 IF ROLL < 4 THEN TX = (MX/4) +(MX-INT(MX/4)): IF TX>19 THEN TX=19 4040 IF ROLL < 4 THEN GOSUB 4160 4050 RETURN 4060 'GET A TRAP 4070 CT=0 4080 IF CT=20 GOTO 4150 4090 V = (INT(RND*DEP)+1)+R(RX,1) 4100 H = (INT(RND*WID)+1)+R(RX,2) 4110 IF M(V,H) <> 32 THEN CT=CT+1: GOTO 4080 4120 M(V,H) = 0: CT=0 4130 ROLL = INT(RND*6)+1 4140 IF ROLL < 3 THEN GOSUB 4160 4150 RETURN 4160 'GET A TREASURE 4170 CT=0 4180 IF TX <> 0 THEN GOTO 4200 4190 TX=(INT(RX/3)+LV.ADJ)*((RND*4)+1): IF TX>19 THEN TX=19 4200 WK = TX 4210 IF CT=20 GOTO 4280 4220 V = (INT(RND*DEP)+1)+R(RX,1) 4230 H = (INT(RND*WID)+1)+R(RX,2) 4240 IF M(V,H) <> 32 THEN CT=CT+1: GOTO 4210 4250 M(V,H) = WK: CT=0 4260 MH=(H*8)-8: MV=(V*8)-8: DRAW "C3" 4270 DRAW "BM=MH;,=MV;": DRAW "BR4;F3;D4;L6;U4;E3" 4280 RETURN 4290 'MATCH TO SUPPLY FILE 4300 LX=LEN(SK$) 4310 FOR S = 1 TO SMAX 4320 IF (SK$ = LEFT$(S.NAME$(S),LX)) AND (S(S,P+2) <> 0) THEN FOUND=1: GOTO 4350 4330 NEXT 4340 FOUND = 0: MSG$="YOU DON'T OWN A "+SK$: GOSUB 4600: MSG$="": GOSUB 4600: GOTO 4350 4350 RETURN 4360 'GET INITIAL LOCATION OF PLAYERS 4370 PAINT (0,0),1,3 4380 V=1 4390 H=1 4400 FOR P = 9 TO 1 STEP -1 4410 IF P.NAME$(P) = "" THEN GOTO 4480 4420 M(V,H) = P+48 4430 P(P,6)=V 4440 P(P,7)=H 4450 LOCATE V,H 4460 PRINT CHR$(M(V,H)); 4470 V=V+1 4480 NEXT 4490 LV=1 4500 RETURN 4510 'GET A REPLY 4520 REPLY$=INKEY$: IF REPLY$="" THEN GOTO 4520 4530 IF LEN(REPLY$)=1 THEN GOTO 4590 4540 REPLY$=RIGHT$(REPLY$,1) 4550 IF ASC(REPLY$)=72 THEN REPLY$=CHR$(30): GOTO 4590 4560 IF ASC(REPLY$)=80 THEN REPLY$=CHR$(31): GOTO 4590 4570 IF ASC(REPLY$)=77 THEN REPLY$=CHR$(28): GOTO 4590 4580 IF ASC(REPLY$)=75 THEN REPLY$=CHR$(29) 4590 RETURN 4600 'MESSAGE 4610 IF TIMER < SV.TIMER! THEN GOTO 4610 4620 MS$=SPACE$(39) 4630 LSET MS$=MSG$ 4640 LOCATE 25,1 4650 PRINT MS$; 4660 SV.TIMER!=TIMER+2 4670 RETURN